TOP

Procedimientos almacenados de SQL para SQL Server

¿Qué es Stored Procedure?

Stored Procedure (procedimiento almacenado) es un código SQL preparado que se puede almacenar para que este código se pueda usar una y otra vez.

Entonces, si tiene una consulta SQL que escribe una y otra vez, guárdela como un procedimiento almacenado y luego simplemente llámela para ejecutarla.

También puede pasar parámetros a un procedimiento almacenado para que el procedimiento almacenado pueda actuar sobre los valores de los parámetros pasados.


Sintaxis de Stored Procedure

CREATE PROCEDURE procedure_name
AS 
sql_statement
GO

Ejecutando Stored Procedure

EXEC procedure_name

Base de datos de demostración

El siguiente es un ejemplo de la tabla "Customers" ("Clientes") de la base de datos "Northwind":

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.5021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.5023Mexico
4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

Stored Procedimiento Ejemplo

La siguiente consulta SQL crea un procedimiento almacenado denominado "SelectAllCustomers" que selecciona todos los registros de la tabla Clientes:

CREATE PROCEDURE SelectAllCustomers
AS
SELECT * FROM Customers
GO

Ejecutemos el procedimiento almacenado anterior de la siguiente manera:

EXEC SelectAllCustomers

Stored Procedure con un parámetro

La siguiente consulta SQL crea un procedimiento almacenado que selecciona clientes de una ciudad específica de la tabla Clientes:

CREATE PROCEDURE SelectAllCustomers @City nvarchar(30)
AS
SELECT * FROM Customers WHERE City = @City
GO

Ejecutemos el procedimiento almacenado anterior de la siguiente manera:

EXEC SelectAllCustomers @City = 'London'

Stored Procedure con muchos parámetros

Es muy fácil configurar varios parámetros, es decir, enumere cada parámetro y tipo de datos separados por una coma, como se muestra a continuación.

La siguiente instrucción SQL crea un procedimiento almacenado que selecciona clientes de una ciudad específica con un código postal específico de la tabla Clientes:

CREATE PROCEDURE SelectAllCustomers @City nvarchar(30), @PostalCode nvarchar(10)
AS
SELECT * FROM Customers WHERE City = @City AND PostalCode = @PostalCode
GO

Ejecutemos el procedimiento almacenado anterior de la siguiente manera:

EXEC SelectAllCustomers @City = 'London', @PostalCode = 'WA1 1DP'